package br.com.cqipac.ejb;

import java.util.List;

import javax.ejb.Remote;

import br.com.cqipac.to.Disposicao;
import br.com.cqipac.to.Funcionario;
import br.com.cqipac.to.Menu;
import br.com.cqipac.to.NaoConformidade;
import br.com.cqipac.to.Setor;
import br.com.cqipac.to.SetorFuncionario;
import br.com.cqipac.to.TipoNaoConformidade;

@Remote
public interface FacadeIpacRemote {

	public List<Menu> listaMenus(SetorFuncionario setorFuncionario)
			throws Exception;

	public List<Setor> listaSetores() throws Exception;

	public List<Setor> listaSetores(Setor setor) throws Exception;

	public List<Funcionario> listaFuncionarios() throws Exception;

	public List<Funcionario> listaFuncionarios(Funcionario funcionario)
			throws Exception;

	public SetorFuncionario autentica(SetorFuncionario setorFuncionari)
			throws Exception;

	public Funcionario buscaFuncionario(Funcionario funcionario)
			throws Exception;

	public void inserirFuncionario(Funcionario funcionario,
			Funcionario funcionarioInclusao) throws Exception;

	public Funcionario buscaFuncionario(int codFuncionario) throws Exception;

	public Setor buscaSetor(int codSetor) throws Exception;

	public void inserirSetor(Setor setor, Funcionario funcionario,
			Funcionario funcionarioInclusao) throws Exception;

	public void editarFuncionario(Funcionario funcionario,
			Funcionario funcionarioInclusao) throws Exception;

	public void excluirSetor(Setor setor) throws Exception;

	public void editarSetor(Setor setor, Funcionario funcionario,
			Funcionario funcionarioInclusao) throws Exception;

	public void excluirFuncionario(Funcionario funcionario) throws Exception;

	public List<TipoNaoConformidade> listaTipoNaoConformidades()
			throws Exception;

	public void inserirTipoNaoConformidade(
			TipoNaoConformidade tipoNaoConformidade,
			Funcionario funcionarioInclusao) throws Exception;

	public void editaTipoNaoConformidade(
			TipoNaoConformidade tipoNaoConformidade,
			Funcionario funcionarioInclusao) throws Exception;

	public List<TipoNaoConformidade> listaTipoNaoConformidade(
			TipoNaoConformidade tipoNaoConformidade) throws Exception;

	public void inserirNaoConformidade(NaoConformidade naoConformidade)
			throws Exception;

	public List<NaoConformidade> listaNaoConformidades() throws Exception;

	public NaoConformidade buscaNaoConformidade(int codNaoConformidade)
			throws Exception;

	public void inserirDisposicao(Disposicao disposicao) throws Exception;

	public List<Disposicao> listaDisposicao() throws Exception;

	public Disposicao buscaDisposicao(int codDisposicao) throws Exception;

	public void editaDisposicao(Disposicao disposicao) throws Exception;

	public void editarNaoConformidade(NaoConformidade naoConformidade)
			throws Exception;

	public List<SetorFuncionario> listaSetorFuncionario(
			SetorFuncionario setorFuncionario) throws Exception;

	public void excluirTipoNaoConformidade(
			TipoNaoConformidade tipoNaoConformidade) throws Exception;

	public TipoNaoConformidade buscaTipoNaoConformidade(int parseInt)
			throws Exception;

	public void insereSetorFuncionario(
			SetorFuncionario setorFuncionario) throws Exception;
}
